package icu.cqcai.xinsi.service;

import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.stereotype.Service;

import java.io.ByteArrayOutputStream;
import java.io.IOException;
import java.nio.charset.StandardCharsets;

/**
 * HTML转PDF服务
 * 提供简单的HTML到PDF转换功能
 */
@Service
public class HtmlToPdfService {

    private static final Logger logger = LoggerFactory.getLogger(HtmlToPdfService.class);

    /**
     * 将HTML内容转换为PDF字节数组
     * 
     * @param htmlContent HTML内容
     * @return PDF字节数组
     */
    public byte[] convertHtmlToPdf(String htmlContent) {
        try {
            logger.info("开始HTML转PDF转换");
            
            // 临时方案：由于没有PDF库，返回优化的HTML内容
            // 在实际环境中，这里应该使用wkhtmltopdf或其他PDF转换工具
            String optimizedHtml = optimizeHtmlForPdf(htmlContent);
            
            logger.info("HTML转PDF转换完成");
            return optimizedHtml.getBytes(StandardCharsets.UTF_8);
            
        } catch (Exception e) {
            logger.error("HTML转PDF转换失败", e);
            throw new RuntimeException("HTML转PDF转换失败: " + e.getMessage(), e);
        }
    }
    
    /**
     * 优化HTML内容以便更好地显示
     */
    private String optimizeHtmlForPdf(String htmlContent) {
        // 添加PDF友好的样式
        String pdfStyles = """
            <style>
            @media print {
                body { 
                    margin: 0; 
                    padding: 20px;
                    font-size: 12px;
                }
                .section { 
                    page-break-inside: avoid; 
                    margin-bottom: 20px;
                }
                .score-overview {
                    background: #f8f9fa !important;
                    color: #333 !important;
                    border: 1px solid #ddd;
                }
                .answer-item {
                    page-break-inside: avoid;
                    margin-bottom: 15px;
                }
            }
            body {
                max-width: 800px;
                margin: 0 auto;
                font-family: 'Microsoft YaHei', 'SimSun', Arial, sans-serif;
            }
            .no-print {
                display: none;
            }
            </style>
            """;
        
        // 在</head>前插入PDF优化样式
        return htmlContent.replace("</head>", pdfStyles + "</head>");
    }
    
    /**
     * 生成PDF下载响应的文件名
     */
    public String generatePdfFileName(String sessionId) {
        return "interview_report_" + sessionId + "_" + 
               java.time.LocalDateTime.now().format(java.time.format.DateTimeFormatter.ofPattern("yyyyMMdd_HHmmss")) + ".html";
    }
} 